package org.bill.dao;

import java.util.List;

import org.bill.entity.Bill;
import org.bill.entity.BillCenter;
import org.bill.entity.BillDetail;

/**
 * 账单映射接口
 * 
 * @author 米mi
 *
 */
public interface IBill {

    // ------------------------------------------------------------------------
    /**
     * 添加账单
     * 
     * @param center
     *            账单信息
     * @return 影响行数
     */
    int intsertBill(Bill bill);

    /**
     * 批量添加账单
     * 
     * @param centers
     *            账单信息
     * @return 影响行数
     */
    int insertBillList(List<BillCenter> centers);

    int intsertBillDetail(BillDetail detail);
    
    int intsertBillDetails(List<BillDetail> details);
    
    // ------------------------------------------------------------------------
    /**
     * 查询账单信息
     * 
     * @param billId
     *            账单编号
     * @return 账单信息
     */
    BillCenter getBillByBId(String billId);

    List<BillCenter> getBillByBName(String billName);

    /**
     * 查询账单信息
     * 
     * @param startDate
     *            开始时间
     * @param endDate
     *            结束时间
     * @return 账单信息
     */
    List<BillCenter> getBillByTime(String startDate, String endDate);

    List<BillCenter> getBillByUId(int bId);

    // ------------------------------------------------------------------------
    /**
     * 删除所有信息
     * 
     * @return 影响行数
     */
    void deleteAll();

    int deleteBill(String billId);

    int deleteBillList(List<String> billList);

    // ------------------------------------------------------------------------
    int updateBill(BillCenter center);

    int updateBillList(List<BillCenter> centers);

}
